import axios from 'axios'
import { ElMessage } from 'element-plus'
import { getLocalUser, removeLocalUser } from '@/utils/auth'
import { useRouter } from 'vue-router'
const router = useRouter()
// import qs from "qs";
// const baseURL = import.meta.env.VITE_APP_BASE_API;
const baseURL = import.meta.env.VITE_APP_BASE_APILIU;
// 创建 axios 实例
const service = axios.create({
  baseURL: baseURL,
  timeout: 50000,
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
    // 'Content-Type': 'application/x-www-form-urlencoded',  // 确保服务器能解析请求体
  }
  // paramsSerializer: (params) => {
  //   return qs.stringify(params)
  // }
})

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    // 获取请求 URL
    const isLoginRequest = config.url.includes('/xddcloud-auth-server/auth/oauth2/token')
    if (!isLoginRequest && getLocalUser()) {
      config.headers = {
        'x-Access-token': JSON.parse(getLocalUser())
      }
    }

    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(

  (response) => {
    // 检查配置的响应类型是否为二进制类型（'blob' 或 'arraybuffer'）, 如果是，直接返回响应对象
    if (
      response.config.responseType === 'blob' ||
      response.config.responseType === 'arraybuffer'
    ) {
      return response
    }

    // const { code, data, msg } = response.data
    // if (code === 200) {
    //   return data
    // }

    const { status, statusText } = response
    if (status === 200) {
      return response.data
    }

    ElMessage.error(statusText || '系统出错')
    return Promise.reject(new Error(statusText || 'Error'))
  },
  (error) => {
    console.log(error);
    // if (error.status === 403) {
    //   ElMessage.error('账号密码错误，请检查账号密码是否正确！')
    // }
    // 异常处理
    // if (error.response.data) {
    //   const { code, msg } = error.response.data
    //   if (code === 'A0230') {
    //     ElMessage.error('您的会话已过期，请重新登录')
    //     // useUserStoreHook()
    //     //   .resetToken()
    //     //   .then(() => {
    //     //     location.reload()
    //     //   })
    //     localStorage.removeItem('loginUser')
    //     localStorage.removeItem('token')
    //     token = null
    //     window.location.href = '#/login'
    //   } else {
    //     ElMessage.error(msg || '系统出错')
    //   }
    // }
    return Promise.reject(error)
  }
)

// 导出 axios 实例
export default service
